package pe.edu.upc.matrix.negocio;

import java.util.Date;

import pe.edu.upc.matrix.modelo.MPersona;
import pe.edu.upc.matrix.modelo.MUsuario;
import pe.edu.upc.matrix.dao.DUsuario;
import pe.edu.upc.matrix.dao.DPersona;
import pe.edu.upc.matrix.excepcion.EExcepcionDAO;
import pe.edu.upc.matrix.excepcion.EExcepcionLogin;

public class NUsuario {

	public MUsuario RegistrarUsuario(int idTipoPersona, String noPersona, String noPaterno, String noMaterno, int idSexo, int idTipoDocumento, String nuDocumento, String noCorreo, String nuCelular, Date feNacimiento, String usuario, String contrasena)
			throws EExcepcionDAO {
		
		DPersona dPersona = new DPersona();
		DUsuario dUsuario = new DUsuario();
		
		MPersona personaTmp = new MPersona();
		MPersona persona = new MPersona();
		
		personaTmp.setIdTipoPersona(idTipoPersona);
		personaTmp.setNoPersona(noPersona);
		personaTmp.setNoPaterno(noPaterno);
		personaTmp.setNoMaterno(noMaterno);
		personaTmp.setIdSexo(idSexo);
		personaTmp.setIdTipoDocumento(idTipoDocumento);
		personaTmp.setNuDocumento(nuDocumento);
		personaTmp.setNoCorreo(noCorreo);
		personaTmp.setNuCelular(nuCelular);
		personaTmp.setFeNacimiento(feNacimiento);

		persona = dPersona.registrarPersona(personaTmp);
		
		MUsuario mUsuario = new MUsuario();		
		
		mUsuario.setPersona(persona);
		mUsuario.setUsuario(usuario);
		mUsuario.setContrasena(contrasena);
		
		dUsuario.registrarUsuario(mUsuario);
		
		return mUsuario;
	}
	
	public MUsuario validarUsuario(String idUsuario, String clave) throws EExcepcionDAO, EExcepcionLogin {
		
		DUsuario dUsuario = new DUsuario();
		return dUsuario.validarUsuario(idUsuario, clave);
		
	}
	
	public boolean exitePesonaMismoEmail(String email) throws EExcepcionDAO, EExcepcionLogin {
		
		DPersona dPersona = new DPersona();
		return dPersona.exitePesonaMismoEmail(email);
		
	}
	
	public boolean exitePesonaMismoNumeroDocumento(String nroDocumento) throws EExcepcionDAO, EExcepcionLogin {
		
		DPersona dPersona = new DPersona();
		return dPersona.exitePesonaMismoNumeroDocumento(nroDocumento);
		
	}
	
	public boolean exitePersonaMismoUsuario(String usuario) throws EExcepcionDAO, EExcepcionLogin {
		
		DUsuario dUsuario = new DUsuario();
		return dUsuario.exitePersonaMismoUsuario(usuario);
		
	}

}
